package com.admin.server.domain;

import java.util.HashSet;
import java.util.Set;

import javax.jdo.annotations.Element;
import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.admin.share.model.PrivilegioDTO;
import com.google.appengine.api.datastore.Key;

@PersistenceCapable
public class Privilegio {

	@PrimaryKey
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
    private Key key;
	
	@Persistent
	private String descripcion;
	
	@Persistent(mappedBy="privilegio")
	@Element(dependent = "true")
	private Set<Usuario> usuarios = new HashSet<Usuario>();
	
	public Privilegio(String descripcion){
		this.descripcion = descripcion;
	}
	
	public Key getKey() {
        return key;
    }

	public String getDescripcion() {
		return descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	
	public void addUsuario(Usuario usuario){
		this.usuarios.add(usuario);
	}

	public Set<Usuario> getUsuarios() {
		return usuarios;
	}

	public PrivilegioDTO toDTO() {
		PrivilegioDTO prDTO = new PrivilegioDTO();
		prDTO.setId(key.getId());
		prDTO.setDescripcion(descripcion);
		return prDTO;
	}
}
